In some web browsers, such as a standard web browser on an Android operating system of Google Inc. of Mountain View, Calif., HTTP response payload data is buffered and delivered to a webpage application in segments of predetermined size (e.g., 4K) until the response is complete. This causes an HTTP response received at the client that is less than the predetermined size (e.g., less than 4K in size) to be not delivered to the application until the predetermined size amount of data has been received, causing undesirable delays (e.g., increased latency) in data delivery to the webpage application.
This problem becomes more apparent when attempting to utilize an HTTP connection to emulate a real-time, full-duplex bidirectional communication connection. While the development and use of web applications continues to grow, a significant limitation exists in that the widely used HTTP protocol only supports half-duplex communication. As in the case of conventional client-server application use models, a continuous tier-to-tier bidirectional, or full-duplex communications connection is highly desirable, if not required to enable client interaction with various backend systems. The demand for real-time services on the Web, such as to display real-time stock feeds, permit ad-hoc information updates, enable active participation among multiple users in real-time operations, particularly as encountered in bidding, chat, games, and other applications, is substantial and increasing. When an HTTP connection is utilized to emulate a real-time full-duplex bidirectional communication connection to an application, a data sent to the application may be held in a buffer of a web browser until a predetermined amount of data has been received by the web browser. Waiting for the predetermined amount of data to be delivered renders the emulated real-time full-duplex bidirectional communication connection to be no longer real-time.
The HTML5 specification defines new protocol features, including WebSockets, Server-Sent Events, and associated access security requirements, as a way of enabling reliable bidirectional communications using the HTTP protocol. The HTML5 specification standardizes, among other things, full-duplex, direct TCP communication. However, functional incorporation and operational uniform adoption of WebSocket into all web browsers will not likely occur for many years. Further, resistance to update existing in-place web browsers due to practical, business, and other limitations will likely prevent wholesale adoption for many more years.
Consequently, there exists a need for a reliable way to ensure that received data is delivered in real-time and not trapped in a buffer.